In-App Purchasing allows an application to embed a store for purchasing application specific assets directly within an application. For example, an application such as a game application from a software developer can be purchased from an App Store (such as The iTunes App Store provided by Apple Inc. of Cupertino Calif.) and then a user of that application, after the application is installed on a device, can purchase something for use with the application directly from within the application (without having to go back to The App Store). An In-App Purchase generally uses various frameworks to connect an In-App store with an online store to process secure payments. The framework can prompt the user of the App to authorize payment for the asset, and then can notify the application housing the In-App store so the application can provide the item the user has purchased. The in-application payment functionality can be used to collect payment for assets that provide enhanced functionality within the application, or additional content usable by the application.
For example, an In-App Purchase can be used to implement scenarios such as an initially free application with additional premium features available to purchase inside the application, a book reader application that allows the user to purchase and download new books, or a game that offers new environments (levels) to explore. Additionally, online games can provide an In-App store that allows the player to purchase virtual property.
However, an In-App store presents several security issues that must be overcome to ensure user data is kept safe and to prevent malicious exploits that pose risks to users, application developers and service providers. Even if secure protocols are used between In-App store servers, and devices utilizing the In-App store, vulnerabilities may still exist if certain elements of the security system are disabled or rendered insecure due to unintentional or intentional action by the user, or some device or system malfunction. In some scenarios it is possible that users can be coerced into intentionally compromising system security in a manner that renders an otherwise trusted network system insecure.